package com.cskaoyan.javse.oop2._1extends._10final._1clazz;
/**
 * final修饰类,表示最后的类,最终的类.表示该类无法被继承
 * 语法:
 *  [访问权限修饰符] final class 类名{
 *      // 类体
 *  }
 * final修饰类除了表示这个类无法被继承外,该类和正常类一模一样.包括创建对象,调用方法,访问成员等,都仍然可以.
 * 什么样的类需要声明为final呢? ---> 什么样的类不需要子类? ---> 不需扩展的类,假如你觉得一个类,它的功能已经很完善了
 * 不需要子类来继承和扩展了.这个时候,为了绝对的安全性考虑,就可以使用final修饰它
 * 当然实践开发中,我们自己给类声明为final的场景很少见,没有这种需求.
 * 我们常见的final类都是源码中类,比如String,System,包装类,Scanner,Math等
 *
 * @since 15:09
 * @author wuguidong@cskaoyan.onaliyun.com
 */
public class Demo {
    public static void main(String[] args) {
        Father f = new Father();
        System.out.println(f.a);
        System.out.println(Father.b);
        f.test();
    }
}
final class Father{
    int a;
    static int b;
    public void test(){}
}
// Cannot inherit from final 'com.cskaoyan.javse.oop2._1extends._10final._1clazz.Father'
// class Son extends Father{}
